/* { dg-do run { target inf } } */
/* { dg-options "-O2 -g" } */

#include "pr94589-5.c"

A int f1 (double i, double j) { int c; if (i == j) c = 0; else if (i < j) c = -1; else if (i > j) c = 1; else c = -128; return c == 0; }
A int f2 (double i, double j) { int c; if (i == j) c = 0; else if (i < j) c = -1; else if (i > j) c = 1; else c = -128; return c != 0; }
A int f15 (double i) { int c; if (i == 5.0) c = 0; else if (i < 5.0) c = -1; else if (i > 5.0) c = 1; else c = -128; return c == 0; }
A int f16 (double i) { int c; if (i == 5.0) c = 0; else if (i < 5.0) c = -1; else if (i > 5.0) c = 1; else c = -128; return c != 0; }
A int f29 (double i, double j) { signed char c; if (i == j) c = 0; else if (i < j) c = -1; else if (i > j) c = 1; else c = -128; unsigned char d = c; unsigned char e = -d; signed char f = e; return f == 0; }
A int f30 (double i, double j) { signed char c; if (i == j) c = 0; else if (i < j) c = -1; else if (i > j) c = 1; else c = -128; unsigned char d = c; unsigned char e = -d; signed char f = e; return f != 0; }
A int f43 (double i) { signed char c; if (i == 5.0) c = 0; else if (i < 5.0) c = -1; else if (i > 5.0) c = 1; else c = -128; unsigned char d = c; unsigned char e = -d; signed char f = e; return f == 0; }
A int f44 (double i) { signed char c; if (i == 5.0) c = 0; else if (i < 5.0) c = -1; else if (i > 5.0) c = 1; else c = -128; unsigned char d = c; unsigned char e = -d; signed char f = e; return f != 0; }

//#define C(fn, i, j, r) if (fn (i, j) != r) __builtin_abort ()
//#define D(fn, i, r) if (fn (i) != r) __builtin_abort ()
#define C(fn, i, j, r) if (fn (i, j) != r) __builtin_printf ("%d\n", __LINE__)
#define D(fn, i, r) if (fn (i) != r) __builtin_printf ("%d\n", __LINE__)

int
main ()
{
  C (f1, 7.0, 8.0, 0);
  C (f1, 8.0, 8.0, 1);
  C (f1, 9.0, 8.0, 0);
  C (f1, __builtin_nan (""), 8.0, 0);
  C (f2, 7.0, 8.0, 1);
  C (f2, 8.0, 8.0, 0);
  C (f2, 9.0, 8.0, 1);
  C (f2, __builtin_nan (""), 8.0, 1);
  C (f3, 7.0, 8.0, 0);
  C (f3, 8.0, 8.0, 0);
  C (f3, 9.0, 8.0, 1);
  C (f3, __builtin_nan (""), 8.0, 0);
  C (f4, 7.0, 8.0, 1);
  C (f4, 8.0, 8.0, 0);
  C (f4, 9.0, 8.0, 0);
  C (f4, __builtin_nan (""), 8.0, 1);
  C (f5, 7.0, 8.0, 0);
  C (f5, 8.0, 8.0, 1);
  C (f5, 9.0, 8.0, 1);
  C (f5, __builtin_nan (""), 8.0, 0);
  C (f6, 7.0, 8.0, 1);
  C (f6, 8.0, 8.0, 1);
  C (f6, 9.0, 8.0, 0);
  C (f6, __builtin_nan (""), 8.0, 1);
  C (f7, 7.0, 8.0, 1);
  C (f7, 8.0, 8.0, 0);
  C (f7, 9.0, 8.0, 0);
  C (f7, __builtin_nan (""), 8.0, 0);
  C (f8, 7.0, 8.0, 0);
  C (f8, 8.0, 8.0, 1);
  C (f8, 9.0, 8.0, 1);
  C (f8, __builtin_nan (""), 8.0, 1);
  C (f9, 7.0, 8.0, 0);
  C (f9, 8.0, 8.0, 1);
  C (f9, 9.0, 8.0, 1);
  C (f9, __builtin_nan (""), 8.0, 0);
  C (f10, 7.0, 8.0, 1);
  C (f10, 8.0, 8.0, 0);
  C (f10, 9.0, 8.0, 0);
  C (f10, __builtin_nan (""), 8.0, 1);
  C (f11, 7.0, 8.0, 0);
  C (f11, 8.0, 8.0, 0);
  C (f11, 9.0, 8.0, 1);
  C (f11, __builtin_nan (""), 8.0, 0);
  C (f12, 7.0, 8.0, 1);
  C (f12, 8.0, 8.0, 1);
  C (f12, 9.0, 8.0, 0);
  C (f12, __builtin_nan (""), 8.0, 1);
  C (f13, 7.0, 8.0, 1);
  C (f13, 8.0, 8.0, 1);
  C (f13, 9.0, 8.0, 0);
  C (f13, __builtin_nan (""), 8.0, 1);
  C (f14, 7.0, 8.0, 0);
  C (f14, 8.0, 8.0, 0);
  C (f14, 9.0, 8.0, 1);
  C (f14, __builtin_nan (""), 8.0, 0);
  D (f15, 4.0, 0);
  D (f15, 5.0, 1);
  D (f15, 6.0, 0);
  D (f15, __builtin_nan (""), 0);
  D (f16, 4.0, 1);
  D (f16, 5.0, 0);
  D (f16, 6.0, 1);
  D (f16, __builtin_nan (""), 1);
  D (f17, 4.0, 0);
  D (f17, 5.0, 0);
  D (f17, 6.0, 1);
  D (f17, __builtin_nan (""), 0);
  D (f18, 4.0, 1);
  D (f18, 5.0, 0);
  D (f18, 6.0, 0);
  D (f18, __builtin_nan (""), 1);
  D (f19, 4.0, 0);
  D (f19, 5.0, 1);
  D (f19, 6.0, 1);
  D (f19, __builtin_nan (""), 0);
  D (f20, 4.0, 1);
  D (f20, 5.0, 1);
  D (f20, 6.0, 0);
  D (f20, __builtin_nan (""), 1);
  D (f21, 4.0, 1);
  D (f21, 5.0, 0);
  D (f21, 6.0, 0);
  D (f21, __builtin_nan (""), 0);
  D (f22, 4.0, 0);
  D (f22, 5.0, 1);
  D (f22, 6.0, 1);
  D (f22, __builtin_nan (""), 1);
  D (f23, 4.0, 0);
  D (f23, 5.0, 1);
  D (f23, 6.0, 1);
  D (f23, __builtin_nan (""), 0);
  D (f24, 4.0, 1);
  D (f24, 5.0, 0);
  D (f24, 6.0, 0);
  D (f24, __builtin_nan (""), 1);
  D (f25, 4.0, 0);
  D (f25, 5.0, 0);
  D (f25, 6.0, 1);
  D (f25, __builtin_nan (""), 0);
  D (f26, 4.0, 1);
  D (f26, 5.0, 1);
  D (f26, 6.0, 0);
  D (f26, __builtin_nan (""), 1);
  D (f27, 4.0, 1);
  D (f27, 5.0, 1);
  D (f27, 6.0, 0);
  D (f27, __builtin_nan (""), 1);
  D (f28, 4.0, 0);
  D (f28, 5.0, 0);
  D (f28, 6.0, 1);
  D (f28, __builtin_nan (""), 0);
  C (f29, 7.0, 8.0, 0);
  C (f29, 8.0, 8.0, 1);
  C (f29, 9.0, 8.0, 0);
  C (f29, __builtin_nan (""), 8.0, 0);
  C (f30, 7.0, 8.0, 1);
  C (f30, 8.0, 8.0, 0);
  C (f30, 9.0, 8.0, 1);
  C (f30, __builtin_nan (""), 8.0, 1);
  C (f31, 7.0, 8.0, 0);
  C (f31, 8.0, 8.0, 0);
  C (f31, 9.0, 8.0, 1);
  C (f31, __builtin_nan (""), 8.0, 1);
  C (f32, 7.0, 8.0, 1);
  C (f32, 8.0, 8.0, 0);
  C (f32, 9.0, 8.0, 0);
  C (f32, __builtin_nan (""), 8.0, 0);
  C (f33, 7.0, 8.0, 0);
  C (f33, 8.0, 8.0, 1);
  C (f33, 9.0, 8.0, 1);
  C (f33, __builtin_nan (""), 8.0, 1);
  C (f34, 7.0, 8.0, 1);
  C (f34, 8.0, 8.0, 1);
  C (f34, 9.0, 8.0, 0);
  C (f34, __builtin_nan (""), 8.0, 0);
  C (f35, 7.0, 8.0, 1);
  C (f35, 8.0, 8.0, 0);
  C (f35, 9.0, 8.0, 0);
  C (f35, __builtin_nan (""), 8.0, 0);
  C (f36, 7.0, 8.0, 0);
  C (f36, 8.0, 8.0, 1);
  C (f36, 9.0, 8.0, 1);
  C (f36, __builtin_nan (""), 8.0, 1);
  C (f37, 7.0, 8.0, 0);
  C (f37, 8.0, 8.0, 1);
  C (f37, 9.0, 8.0, 1);
  C (f37, __builtin_nan (""), 8.0, 1);
  C (f38, 7.0, 8.0, 1);
  C (f38, 8.0, 8.0, 0);
  C (f38, 9.0, 8.0, 0);
  C (f38, __builtin_nan (""), 8.0, 0);
  C (f39, 7.0, 8.0, 0);
  C (f39, 8.0, 8.0, 0);
  C (f39, 9.0, 8.0, 1);
  C (f39, __builtin_nan (""), 8.0, 0);
  C (f40, 7.0, 8.0, 1);
  C (f40, 8.0, 8.0, 1);
  C (f40, 9.0, 8.0, 0);
  C (f40, __builtin_nan (""), 8.0, 1);
  C (f41, 7.0, 8.0, 1);
  C (f41, 8.0, 8.0, 1);
  C (f41, 9.0, 8.0, 0);
  C (f41, __builtin_nan (""), 8.0, 0);
  C (f42, 7.0, 8.0, 0);
  C (f42, 8.0, 8.0, 0);
  C (f42, 9.0, 8.0, 1);
  C (f42, __builtin_nan (""), 8.0, 1);
  D (f43, 4.0, 0);
  D (f43, 5.0, 1);
  D (f43, 6.0, 0);
  D (f43, __builtin_nan (""), 0);
  D (f44, 4.0, 1);
  D (f44, 5.0, 0);
  D (f44, 6.0, 1);
  D (f44, __builtin_nan (""), 1);
  D (f45, 4.0, 0);
  D (f45, 5.0, 0);
  D (f45, 6.0, 1);
  D (f45, __builtin_nan (""), 1);
  D (f46, 4.0, 1);
  D (f46, 5.0, 0);
  D (f46, 6.0, 0);
  D (f46, __builtin_nan (""), 0);
  D (f47, 4.0, 0);
  D (f47, 5.0, 1);
  D (f47, 6.0, 1);
  D (f47, __builtin_nan (""), 1);
  D (f48, 4.0, 1);
  D (f48, 5.0, 1);
  D (f48, 6.0, 0);
  D (f48, __builtin_nan (""), 0);
  D (f49, 4.0, 1);
  D (f49, 5.0, 0);
  D (f49, 6.0, 0);
  D (f49, __builtin_nan (""), 0);
  D (f50, 4.0, 0);
  D (f50, 5.0, 1);
  D (f50, 6.0, 1);
  D (f50, __builtin_nan (""), 1);
  D (f51, 4.0, 0);
  D (f51, 5.0, 1);
  D (f51, 6.0, 1);
  D (f51, __builtin_nan (""), 1);
  D (f52, 4.0, 1);
  D (f52, 5.0, 0);
  D (f52, 6.0, 0);
  D (f52, __builtin_nan (""), 0);
  D (f53, 4.0, 0);
  D (f53, 5.0, 0);
  D (f53, 6.0, 1);
  D (f53, __builtin_nan (""), 0);
  D (f54, 4.0, 1);
  D (f54, 5.0, 1);
  D (f54, 6.0, 0);
  D (f54, __builtin_nan (""), 1);
  D (f55, 4.0, 1);
  D (f55, 5.0, 1);
  D (f55, 6.0, 0);
  D (f55, __builtin_nan (""), 0);
  D (f56, 4.0, 0);
  D (f56, 5.0, 0);
  D (f56, 6.0, 1);
  D (f56, __builtin_nan (""), 1);
  return 0;
}
